202403.综述: Android 任务完成了?(Machine Learning for Android Malware Detection:Mission Accomplished?A Comprehensive Review of Open Challenges and Future Perspectives) ccfb
用于 Android 恶意软件检测的机器学习:任务完成了吗?全面回顾开放挑战和未来前景
摘要
基于机器学习的 Android 恶意软件检测的广泛研究通过提出的各种解决方案展示了高性能指标。因此,这助长了问题已解决的(错误)观念,降低了其对进一步研究的吸引力。然而,在查阅相关文献后,这种欺骗性的推论被揭穿了。在本文中,我们确定了五个被专业研究忽视的未解决的重大挑战,这些挑战阻碍了 Android 恶意软件检测成为一个已解决的问题。从方法缺陷到无效假设和数据集限制,这些挑战(在本文中进行了详细描述)阻碍了基于机器学习的有效、长期的 Android 恶意软件检测。对现有技术的全面回顾突出并激发了 Android 恶意软件检测领域的未来研究方向,这可能使问题更接近解决。
1 介绍
自 2012 年以来,Android 操作系统 (OS) 一直是移动设备的领先平台。目前,超过 70% 的手机使用这种开源且可定制的操作系统(Laricchia,2022)。尽管 Google 和原始设备制造商 (OEM) 引入了显着的安全增强功能,但 Android 设备不断成为恶意软件活动的目标并成功感染(Dassanayake,2021 年),占针对移动设备的网络攻击的 98% 以上(卡巴斯基,2020 年)。这些攻击是通过利用移动设备暴露的动态攻击面的各种攻击媒介来执行的(Townsend,2020)。尽管 Android 恶意软件的数量比 Windows 恶意软件要少得多(AVTest,2022;R. C.,2022),但威胁形势的持续演变(即日益复杂(Gurubaran,2022))和随着时间的推移的一致性使 Android 最终用户处于危险境地。恶意软件感染的永久高风险(Spadafora,2022)。鉴于传统的防病毒措施(例如指纹识别和黑名单)已被证明在保护移动领域的最终用户方面无效且有限(Timothy,2022),特别是针对加密和零日恶意软件,Android 恶意软件研究人员已将注意力转向机器学习算法寻找更有效的恶意软件检测解决方案。在这方面,在过去十年中,针对这一主题开展了大量研究(例如,在撰写整个文档时,在 Google 学术搜索 Android 恶意软件检测中检索到了 7,980 个结果,同时检索了 2,557 篇文章。 Scopus 中标题-摘要-关键词文档部分的术语相同),并且仍然是一个活跃的研究领域(例如,2022 年发表了 336 篇 Scopus 文章)。
研究的当前表象:绝大多数基于 ML 的 Android 恶意软件检测研究报告了使用大量日益复杂的算法测试数据集的高性能指标(即超过 90% 的准确度和 F1 得分值)(Muzaffar 等人,2022 年),这使得逻辑推论表明,所提出的基于机器学习的解决方案实际上可以有效地检测未来和未见过的恶意软件样本。因此,基于丰富的优秀检测解决方案,总体概念是 Android 恶意软件检测问题可以被视为已解决的问题,从而引起了领先的网络安全和数字取证会议以及知名期刊的边缘关注,因此,大多数网络安全研究人员的兴趣和努力转向其他较少探索和新出现的问题(例如物联网安全)。
本文分析的真相:然而,本文的分析证明这种演绎推理是一个谬误。 Android 恶意软件检测问题远未被标记为已解决,并且在构建有效的生产解决方案时存在一些关键因素和方法上的细微差别,这些因素要么尚未解决,要么在相关文献中仅得到肤浅的考虑。本研究无意提供有关 Android 恶意软件检测的系统文献综述(相关参考文献在第 2 节中提供),而是从相关和更定性的角度分析现有文献,对其进行仔细审查以识别未解决的挑战并促进未来的研究方向。因此,我们的目标是找出研究差距并鼓励研究解决 Android 恶意软件检测现有的关键挑战,最终可能会产生实际长期有效的 Android 恶意软件检测解决方案。
这项研究背后的主要研究问题是:
Android 恶意软件检测可以被视为一个已解决的问题吗? (RQ1)。
出于我们的目的,如果问题领域(即最新技术)的专业研究文献不存在未解决的重大挑战,我们会将问题归类为已解决。在对文献进行彻底检查和评估后,如果 RQ1 的答案是否定的,我们还考虑:
哪些未解决的挑战阻碍了有效、长期的 Android 恶意软件检测? (RQ2)。
为此,我们的目标是提供全面的综述,重点关注有关 Android 恶意软件检测的专业文献中的研究差距和开放挑战。
我们仔细研究了基于机器学习的 Android 恶意软件检测文献,过滤和分析了问题领域的相关和代表性研究,包括历史和最新的解决方案。值得一提的是,由于该领域的研究数量众多,为简洁起见,本文仅引用了最具代表性的研究来说明某些方面,其中仍包括 230 多篇论文。我们对相关研究文献进行了广泛的回顾和分析,确定并总结了基于机器学习的 Android 恶意软件检测的研究差距和当前挑战,这是本文的主要贡献。简而言之,当前研究工作面临的主要挑战是:(i)稀缺、过时和低质量的数据集,(ii)跨平台数据一致性的错误假设,(iii)概念漂移忽视,(iv)对模型安全性的浅层探索方面,以及(v)过度关注模型性能而忽视模型的理解和可解释性。我们假设,解决这些现有的挑战可能会显着增强 Android 恶意软件检测生产系统,使其能够适应不断变化的威胁形势,产生有效的长期检测性能,并使问题更接近实际解决。
本文的其余部分的结构如下。第 2 节参考文献中的相关作品。第 3-7 节识别并描述了目前阻碍有效、长期 Android 恶意软件检测的尚未解决的挑战。第 8 节提供了对未来工作的建议,最后第 9 节总结了本文。
2 相关工作:概要安卓(Profile Android)恶意软件检测研究
文献综述,无论是否系统,都会调查某个问题领域的现有文献,提供特定时间点的最新技术的良好综合。最近关于 Android 恶意软件检测的文献综述论文很好地概述了过去的工作和表征研究工作的相关方面(即,参考 Dave 和 Rathod (2022);Kouliaridis 和 Kambourakis (2021);Liu 等人 (2020、2021) ;Meijin 等人(2022);Muzaffar 等人(2021);Sharma 和 Rattan(2021)。然而,它们往往缺乏对现有研究工作的相关性和更多定性方面的彻底批判性分析,也缺乏对需要研究界关注的未来研究方向和挑战的识别。这是这项工作的主要贡献,可以被视为对 Android 恶意软件研究社区进行的相关文献综述的补充。虽然大多数评论侧重于聚合、总结和描述基于 ML 的 Android 恶意软件检测的主要趋势,但只有 Molina-Coronado 等人。 (2023)发展了一个由彻底实验支持的批判性话语。更具体地说,莫利纳-科罗纳多等人。 (2023) 揭示了基于静态特征的 Android 恶意软件检测研究报告的过度乐观结果背后的五个因素。虽然他们的一些发现与这项工作一致(数据集质量和概念漂移),但他们只关注静态恶意软件分类器和数据集,因此,他们不涵盖与动态和混合恶意软件检测方法相关的问题(例如,动态数据一致性) )并忽略相关的机器学习方面,例如模型安全性(即对抗性攻击)和模型可解释性,这些方面在本工作中都有深入讨论。这项工作提供的新颖点包括静态、动态和混合分类模型和数据集的扩展范围、动态数据收集挑战以及对模型安全性和可解释性等其他机器学习建模方面的分析。
仔细研究该问题领域的专业文献,可以发现,尽管存在算法和其他方法上的差异,但大多数 Android 研究都具有相似的特征和假设,即问题的共同概况和观点,这一事实在这项研究旨在识别和描述当前阻碍长期有效的 Android 恶意软件检测的挑战。这些挑战主要建立在共同的观点和任务方法的基础上,而相关方面尚未得到探索。第 3-7 节对它们进行了列举和详细描述,旨在让研究界认识到这些缺失的方面,并为该问题领域的未来研究工作提供相关的研究方向。
3 挑战一:关于数据集、标签和特征
基于机器学习的检测系统的性能受到众多变量的影响,例如数据集、特征、标记精度、算法选择、超参数等。尽管重要变量数量众多,但它们可以抽象为两大类:数据相关和模型相关方面。尽管模型选择和建模假设很重要(例如,线性分类器无法对非线性数据集进行建模),但数据数量和质量是使用机器学习算法进行准确且可概括的数据建模的关键因素。事实上,Android恶意软件检测系统目前面临的大部分挑战都是与数据相关的方面。
乍一看,考虑到 Android 恶意软件检测领域提出的基于 ML 的解决方案所报告的高性能指标,数据问题可能看起来相对无关紧要,而与建模方面更相关。然而,对研究中使用的数据集的仔细检查可以提供对重要数据问题的相关见解。
表 1 总结了 Android 恶意软件研究中最常用的数据集。请注意,此列表并未详尽列出所有可用/使用的数据集;它侧重于用于研究目的最常用的公开数据集。对表 1 数据和相关文献的彻底分析提供了有关 Android 恶意软件检测研究中的偏差和重要数据问题的相关见解,如下所述。
3.1.利用不平衡、小且旧的数据集
介绍数据集的论文的引用次数(即# cit. 列)提供了数据集用于研究的一般概念。在这方面,如表 1 所示,MalGenome 和 Drebin 是迄今为止使用最广泛的数据集(截至撰写本文时)。更具体地说,引用总数的 82.8%(即 4975/6005)对应于任一数据集。与 Guerra-Manzanares 等人报告的 91% 相比下降了 8.2%。 (2021)2021 年数据。尽管下降幅度显着,但这表明绝大多数研究都利用了 2010 年至 2012 年期间收集的数据,代表了十多年前的威胁状况。考虑到 Android 数据中威胁态势的动态演变,这使得这些数据集过于陈旧和过时,因此不能代表当前(甚至最近)的威胁态势,因为它们是在恶意软件功能和行为与恶意软件功能和行为明显不同时收集的。现在的。例如,FakeDefender,第一个 Android 勒索软件,于 2013 年被发现(Savage 等,2015),是一种不包含在这些广泛使用的数据集中的恶意软件类型。此外,大多数数据集都相对较小,特别是如果仅考虑恶意软件的话。在这方面,报告的 10 个数据集中有 7 个提供了不到 20,000 个样本。最重要的是,MalGenome和Drebin,最常用的数据集(Alswaina 和 Elleithy,2020)很小,分别仅提供 1,260 和 5,560 个恶意软件样本。此外,Drebin 的较大规模受到重复项存在的挑战(Irolla 和 Dey,2018),这限制了可用数据,如果不解决,可能会引入数据窥探偏差,这是模型验证的一个显着问题(即数据泄漏)。尽管存在这些重大问题,Drebin 最近已被用作恶意软件的主要或单一来源(Reddy 等人,2021;Syrris 和 Geneiatakis,2021;Zhao 等人,2021b)。
表1中的一半数据集不提供合法样本。因此,为了构建监督检测模型,必须收集额外的数据样本,这些样本可能属于与恶意软件数据不同的时间范围。例如,典型的研究可能使用 Drebin 并从 Google Play 或 AndroZoo 收集合法样本(Allix 等人,2016),这可能会在数据类之间引入显着的时间偏差,并产生过度夸大且不具有代表性的结果(Arp 等人,2016)。 ,2022)(更多内容请参见第 5 节)。在提供两个类别(即合法样本和恶意软件样本)的数据集中,数据通常存在显着比例的不平衡(例如,Drebin 的类别比率为 1:22,而 AndMal2017 的类别比率为 1:12)。许多机器学习算法对不平衡数据很敏感,生成有偏差的模型,如果报告不适当的指标,可能会产生误导性结果(Arp 等人,2022)(例如,准确性是大多数研究报告的首选综合指标,但对于不平衡数据场景)。为了避免由于类别不平衡问题而生成有偏差的模型,必须包含额外的数据(即,一些研究组合数据集或添加来自恶意软件存储库的额外样本,例如 VirusShare (VirusShare, 2022) 或 AndroZoo (Allix 等人, 2016)),或模型生成管道中使用的数据平衡技术,这为建模过程增加了额外的复杂性(Arp 等人,2022)。最后,除了 KronoDroid 和 AMD 之外,这些数据集不跨越四年以上的 Android 历史数据,因此代表了特定时间点威胁态势的静态快照。 KronoDroid 提供截至 2020 年的整个 Android 历史时间范围的数据,而 AMD 包括 2010 年至 2016 年之间的数据。
因此,文献中提出的大多数方法(主要基于单个恶意软件数据源)都针对 Android 历史记录的特定快照中的恶意软件检测进行了优化。然后,在特定时期对威胁态势进行建模,旨在推广到后数据框架,其中可能包括威胁类型和数据演变的重大变化。在这方面,大多数提出的检测解决方案既没有考虑这种场景,也没有提供模型更新机制。这意味着使用在特定时间点收集且从未更新的数据构建的静态模型被认为可以很好地概括未来的数据,从而随着时间的推移保持其检测能力。这一事实忽略了恶意软件数据的非平稳特征(即威胁态势演变),并使模型容易出现概念漂移及其对模型性能的退化影响(更多内容请参见第 5 节)。
3.2.混合功能集的力量被忽视
Android 恶意软件检测系统使用从 Android 应用程序中提取的静态(例如权限、意图过滤器、API 调用)或动态特征(例如系统调用、网络流量)(Liu 等人,2020)。
Android 应用程序的静态功能直接从源代码中收集,无需执行应用程序(即静态恶意软件分析),通常来自两个数据源:反汇编的源代码(即,classes.dex)和 Android 清单(即,AndroidManifest) .xml)。虽然有些工作结合了两个数据源设计的特征(Arp et al., 2014; Felt et al., 2011; Kabakus, 2022; Li et al., 2018, 2019a; Peiravian and Zhu, 2013; Taheri et al., 2020a ;Wang 等人,2019;Yerima 等人,2015),大多数使用单源特征。在这方面,程序流程或 API 调用是反汇编源代码中最常用的(Cai et al., 2021; Frenklach et al., 2021; Grace et al., 2012; Hou et al., 2017; Ou和 Xu,2022;Yang 等人,2021;Zhu 等人,2017),而安全权限(Enck 等人,2009;GuerraManzanares 等人,2022a;Liang 和 Du,2014;Mcdonald 等人,2021) ;Peng 等人,2012;Sahin 等人,2021;Talha 等人,2015)和意图过滤器(Feizollah 等人,2017;Idrees 和 Rajarajan,2014)是 AndroidManifest.xml 的首选功能。
API 调用也可以在运行时收集,可用于重新创建程序流并从代码库的特定应用程序编程接口 (API)(例如,Android 平台 API(Android,2022a))收集应用程序请求的功能。 ))。 Android 安全权限定义应用程序在系统上拥有的权限,即它可以执行的操作和它可以访问的数据(例如敏感数据)(Android,2022b)。Android 意图和意图过滤器是消息传递对象,使应用程序能够请求和接收来自另一个应用程序组件的操作,从而表示应用程序打算在平台上执行的操作(Android,2022c)。
静态特征易于获取,提供广泛的代码覆盖范围,并且可用于设备上的检测系统。然而,如果实施代码混淆技术,仅使用这些特征构建的检测系统很容易被欺骗。在这方面,利用加密、更新攻击、代码混淆和多态技术来隐藏恶意代码并避免检测(Alzaylaee 等人,2020)。
动态特征是在实时环境中执行应用程序期间收集的,在运行时跟踪应用程序与操作系统或网络之间的交互。系统调用(Burguera 等人,2011;Guerra-Manzanares 等人,2019a,b;Hou 等人,2016;Tam 等人,2015)和网络数据流(Arora 等人,2014;Lashkari 等人) ., 2017)是用于构建基于动态特征的检测系统的典型特征集(Liu 等人,2020;Muzaffar 等人,2022)。系统调用是 Android 框架用于应用程序与操作系统通信的机制,可以在运行时跟踪应用程序的行为,而从应用程序与网络交互中获取的网络数据流则提供网络配置文件。其他运行时属性,例如 CPU 和 RAM 利用率、运行进程、电池统计数据和运行时 API 调用也已单独使用(Amos 等人,2013 年;Enck 等人,2014 年;Schmidt,2011 年)或与系统调用或网络数据包(Dini 等人,2012;Shabtai 等人,2012)。
动态特征的收集(即动态分析)非常耗时且在技术上具有挑战性,需要应用程序在沙箱设备(即隔离和受控环境)中安装和执行。尽管基于动态特征的检测系统可以被绕过(Petsas 等人,2014),并且 Android 框架的安全限制阻碍了设备上的检测,但这些系统通常对代码混淆和加密技术具有鲁棒性。此外,动态数据收集的另一个挑战是用户交互。虽然有些工作选择在场景中不包括用户交互(Guerra-Manzanares 等人,2019a,c;Vidal 等人,2017),但其他工作则使用真实的(Burguera 等人,2011)或模拟的用户交互(Dimjaševi ́ c 等人,2016;Hou 等人,2016;Tam 等人,2015)使用 Monkey 等开发工具(Android,2023)。虽然 Monkey 可以通过伪随机流事件注入来模拟用户行为,从而增加代码覆盖率,但它可能不会展示真实的用户行为或遍历所有指令路径。对于后一个目的,相关工作中提出了几种工具(Hou et al., 2016; Tam et al., 2015)。只有 Guerra-Manzanares 和 Välbe (2022) 对这两种场景进行了实验,表明用户交互可以提高检测性能。然而,还需要进一步的研究来评估用户交互对所收集特征的影响及其对检测质量的影响。
尽管大多数检测系统仅使用一种类型的特征集(例如系统调用或权限)构建,但一小部分专业研究已经探索了静态和动态特征的联合利用,即所谓的混合特征集(Alzaylaee 等人,2020;Bläsing 等人,2010;Grace 等人,2012;Guerra-Manzanares 和 Bahsi,2022a;Guerra-Manzanares 等人,2019c;Kabakus 和 Dogru,2018;Ullah 等人, 2022;袁等人,2014)。混合功能集可生成有关恶意软件样本的丰富且更完整的信息,并用相关静态数据补充运行时行为。尽管它们的收集和处理更加复杂和耗时,但它们往往能够对问题进行更丰富的建模,从而比单一类型的方法产生更好的检测结果(Alzaylaee 等人,2020;Guerra-Manzanares 和 Bahsi,2022a; Guerra-Manzanares 等人,2019c)。
可以看出,由于方法论或实用性的原因,大多数研究都集中在单一方法上,使用静态或动态特征集,从而忽略了特征组合的潜力。正如表 1 所示,早期数据集仅提供静态数据特征,这一事实也可能促进了这一点。然而,最近的数据集还包括动态特征,使得能够研究使用混合特征集的潜在好处,这可以通过使用不同角度的互补数据属性来增强检测性能(即类似于当前使用多模态深度学习增强分类的趋势(Lin et al., 2022))。
3.3.标签问题:高成本和不确定性
绝大多数提出的 Android 恶意软件检测解决方案都是基于监督学习(即二元或多类分类)。监督学习算法利用一组标记训练示例 {(x1, y1), ..., (xN , yN )},其中每个训练示例由 (xi, yi) 对定义,使得 xi 是特征第 i 个例子的向量,yi 是它的标签(即类),求一个函数 f ∶ X → Y ,其中 f 从输入空间 X 映射到输出空间 Y 。训练数据集与来自可能函数 F(即机器学习算法)的某个空间的特定函数 f 结合使用,以拟合输入/输出数据,找到数据中能够归纳分类模型的特定模式。所有机器学习算法都会对数据中的模式做出隐式或显式的假设,这意味着每种算法都可以学习特定的模型系列。每个模型被称为假设,而算法可以学习的所有假设的集合被视为假设空间。
无论选择哪种算法来引入分类任务的检测模型,数据集中的每个数据样本都必须进行适当的标记。对于二元分类模型(即绝大多数 Android 检测系统),每个样本都必须被标记为恶意软件或良性样本。在多类分类设置中,样本被标记为属于可能的 k 个类集合中的单个类,其中 k > 2(例如,恶意软件家族分类(Alswaina 和 Elleithy,2020))。
虽然某些机器学习应用领域中的数据标记相对简单,并且无需特殊技能或高技术知识即可快速执行(例如,用于对象识别任务的图像标记),但在网络安全领域,数据样本的标记在技术上具有挑战性,并且耗时,需要高技术技能和特定领域的专家知识(例如用于恶意软件分析的逆向工程、编程和操作系统系统知识)。这一事实显着限制了标记速度和可用数据集的大小。它还显着增加了标签成本,这与标签投入的时间和所需的专业知识直接相关。例如,计算机视觉算法的通用基准数据集 ImageNet 由 14,197,122 个图像组成,分为 21,841 个类别,而除了 AndMal2020、Drebin 和 KronoDroid 之外,表 1 中的数据集的样本数不到 25,000 个。这种数据集大小限制可能会限制需要大量数据的机器学习算法的学习,例如深度学习技术,使它们容易过度拟合。过度拟合会影响训练模型的泛化能力(Brownlee,2018),导致未见数据的性能下降。为了解决这个问题,研究结合了多个数据集或添加来自恶意软件存储库的额外样本,例如 AndroZoo(Allix 等人,2016 年;U. du Luxembourg,2022 年),这是一个不断增长的存储库,包含超过 2100 万个样本(其中大部分是未标记)、VirusTotal 学术版(VirusTotal,2022 年)、VirusShare(VirusShare,2022 年)、Contagio Mobile(Parkour,2019 年)和 Koodous(Koodous,2022 年)。
除了 Android 数据标记的固有挑战之外,由于缺乏识别特定恶意软件的通用术语(因为恶意软件家族名称没有命名约定),这给本已艰巨的任务增加了更多的复杂性和不确定性。恶意软件家族归因是一项重要任务,因为它可以将恶意软件样本识别为众所周知的类别,从而增强恶意软件识别、特征描述和检测(Guerra-Manzanares 等人,2021)。尽管其重要性,反病毒供应商和恶意软件分析师对恶意软件家族有不同的解释和名称(Hurier et al., 2016),这破坏了对恶意软件家族标签的信任,产生了不确定性。最近发现的恶意软件可以归类为现有恶意软件家族、其变体、后代(Cohen 和 Walkowski,2019)或新恶意软件家族。 VirusTotal 分析报告证明了缺乏命名约定。例如,哈希值为 883e6dc7cfcf47c646bb580d7684db4c8dffff9ead153023e8556cd66e5bd7 d7 (SHA-256) 的样本被 64 个安全供应商中的 26 个标记为恶意。在阳性检测中,特定实例被某些 AV 归类为属于 GoldDream 家族,被其他 AV 归类为 Youmi.A 或 Youmi.B,而对于另一些 AV 则归类为 KungFu 或 KyView。它是一种通用木马(即 Trojan/Android.Generic)、PUA、风险软件或其他通用广告软件,同时它也被指定为具有不同恶意分数(即 85 和 97)的通用恶意软件。 ,以及使用特定于供应商的神秘名称进行分类的 Android 恶意软件(例如,Artemis!8AA114A1F2E7 或 ApplicUnwnt@#2smy9aq1px39u)。因此,单个恶意软件可能会收到与检测样本为恶意样本的扫描仪数量一样多的不同名称,即使对于 GoldDream 等知名家族也是如此。由于缺乏命名约定,反病毒软件供应商使用自己的名称(卡巴斯基,2021;微软,2021),这可能非常难以解释,甚至对实际的恶意软件家族识别和分类构成重大挑战适合经验丰富的恶意软件分析师(Hahn,2019a)。在这方面,Euphony 是一种标签统一解决方案,可用于解析 VirusTotal 扫描报告中的恶意软件标签,并为每个样本归属一个家族(Fmind,2019),而 Hurier 等人。 (2016) 提出了一组能够评估 AV 标签共识的指标,可用于改进真实标签。
正确的恶意软件家族识别对于感染后正确消除、清理和恢复恶意软件至关重要(Hahn,2019b)。在研究中,恶意软件家族归因可以表征和理解不同恶意软件家族及其发展和演变,从而不仅能够生成更好的对策,而且能够生成更有效的二进制和多类检测系统。缺乏命名约定以及使用令人困惑的恶意软件家族名称是他们面临的主要障碍。
构建有效检测系统的另一个主要障碍是威胁形势的不断变化和演变,这需要不断的标记工作和更新的知识来检测可能在很长一段时间内未被检测到的新的和进化的恶意软件变体。这个问题是网络安全领域的一个非常特殊且具有挑战性的特征,因为生成恶意软件的对手是一个人,他可以智能地设计新颖的攻击并增强他/她的创作以绕过防御响应。随着时间的推移,由于威胁基于智能代理而不断变化,这增加了设计和维护有效检测系统的复杂性。因此,如果根据历史知识无法检测到新威胁,则需要人类不断进行标记工作来解决和更新分类器的知识,这意味着输入数据分布的变化未反映在模型的训练中设置(更多内容请参见第 5 节)。主动学习是半监督学习的一种形式,其在网络安全领域的应用一直被忽视,它可以帮助生成更高效的数据标记管道和模型更新,通过集中可用的人力资源来进行标记,从而显着降低标记成本更新模型的最相关的实例,而不是随机选择样本,并且不需要标记所有传入数据(Guerra-Manzanares 和 Bahsi,2022a)。
最后,尽管主动学习可以帮助降低标记成本并优化标记工作,但标记的不稳定性或确定性通常是网络安全领域(尤其是移动恶意软件检测)中的主要挑战。不仅同一恶意软件的不同名称可能会给多类分类器带来混乱,更重要的是,标签一致性是导致模型退化的主要因素。
几乎所有 Android 恶意软件检测研究都使用 VirusTotal 扫描服务来检查和分配数据实例的类标签(即良性或恶意软件)。应用程序被提交到服务并返回检测报告。样本的类别通常使用阈值(即,最少数量的 AV 扫描仪必须将样本检测为恶意软件才能将其分类为恶意软件)或选择检测结果比其他引擎更值得信赖的高信誉引擎来决定(Hurier 等)等人,2016;朱等人,2020a)。无论如何,样本的标签通常是固定的并且被认为是确定的。然而,朱等人。 (2020a,b) 研究了 AV 供应商的标签动态,并证明恶意软件标签会随着时间的推移而变化,特别是对于新的恶意软件实例。这意味着至少在最初不能假设标签确定性,并且标签翻转是频繁的(即从良性到恶意软件类,反之亦然)。经常重新扫描应用程序可以有所帮助,但不能保证标签的确定性,因为 VirusTotal 可能会随着时间的推移而改变处理样本的扫描仪(Salem 等人,2021)。这给 Android 恶意软件检测系统带来了新的挑战,可能会导致分类器非自愿中毒(有关训练集中毒的更多信息,请参阅第 6 节),产生不太精确或错误的决策边界并降低性能。为了克服 VirusTotal 标签动态问题,Salem 等人。 (2021)提出了一种依赖于在不同时期向正确的扫描仪请求标签并使用随机森林算法来准确一致地标记数据实例的方法。
尽管 VirusTotal 标签动态存在弱点,可能会提供错误的标签,但我们认为,依靠单个分析师或专家来标记样本可能会提供更糟糕的结果。在这方面,在安全运营中心或反病毒公司中,分析师的专业水平、经验或时间限制等因素会显着影响标注结果,而依赖单一专家判断可能会加剧标注错误,从而可能导致标注错误。导致错误的决策边界,从而导致易于绕过的错误检测模型。无论如何,大多数 Android 研究都使用单次检查标签(即在初始标签归属后不进行重新检查)(Zhu et al., 2020a)或依赖数据集作者在创建数据集时提供的标签。这可能会产生关于所提出方法的有效性的误导性结果,并且不能反映生产设置中面临的真正挑战。使用旧数据集可能会提供更多关于标签的确定性,但会根据有关当前威胁情况的旧数据和非代表性数据生成检测模型,这可能会对类似测试数据提供误导性和过度夸大的结果,但无法有效防御当前威胁(阿尔普等人,2022)。
数据生成、处理和管理是构建有效的 Android 恶意软件检测系统的关键组成部分,而这些组成部分一直被专业研究所忽视。领域应用的弱点,例如利用旧的、非代表性的数据集、单源特征(即静态特征)占主导地位、忽视数据不平衡问题和标签动态,使得大多数提出的解决方案无法有效实施相关文献中的生产设置是不切实际的。任何旨在现实世界实施的检测解决方案都必须考虑和解决上述挑战。
4 挑战二:动态数据一致性假设
在不改变样本哈希值的情况下,无法修改元数据、安全权限和反汇编源代码 API 调用等静态功能。由于其起源,静态特征不依赖于采集平台。尽管存在显着差异,但跨平台数据一致性的类似假设通常适用于行为数据(即动态特征),这需要在实时环境中执行样本来获取。这一基本假设已在研究环境中得到利用,利用大量设备和 Android 操作系统版本进行数据收集。从表2中可以看出,真实设备和模拟器都被广泛用作数据收集平台,但很少同时使用。
表 2 中提供的数据提供了有关使用动态功能检测 Android 恶意软件的相关最新论文。特别是,它指定了所引用出版物中使用的设备类型(即真实设备、模拟器或两者)以及所使用的动态功能集。在后一方面,系统调用是指仅使用该特征集作为动态数据源的出版物(即,无论是否使用静态属性),而其他是指使用多个动态特征集的论文(即,包括或不是系统调用作为功能)。从表 2 中可以看出,标准 Android 模拟器(例如 Android 模拟器或 GenyMotion)是研究中最常用的数据收集沙箱设备类型。这些设备主要用于获取系统调用跟踪,这是 Android 恶意软件检测研究中最常用的动态数据(Liu et al., 2020;Muzaffar et al., 2022)。
Android 模拟器是在主机上运行的虚拟 Android 设备,可以模拟各种真实设备和 Android 版本的几乎所有功能,而无需拥有任何物理设备(Android,2021)。它们易于部署、管理和集成到自动化分析和检测系统中(Dimjaševi ́ c et al., 2016)。尽管其用途广泛,但具有沙箱检测功能的恶意软件可以通过不触发恶意行为来欺骗它们,并避免积极的检测和取证分析(Lindorfer et al., 2015)。尽管已经创建了一些专门的沙箱来解决这个问题(Naval et al., 2015; Vinod et al., 2019),但它们仍然存在局限性,例如缺乏某些恶意软件触发恶意活动所需的足够的交互能力(例如,短信或 SIM 卡检测(Feng 等人,2018))。此外,尽管它们通常提供 root 帐户,但它们的取证功能仅限于 x86 或 x86-64 架构兼容的应用程序,这要求应用程序包含额外的特定库,因为实际设备基于 ARM 架构。
真实设备是物理手机。它们与大多数应用程序兼容,显示的兼容性问题少得多,提供完整的交互,并且自然不受反沙箱技术的影响。然而,它们更难以管理和集成到自动化解决方案中。需要对设备进行 Root 才能执行许多取证活动,这会擦除设备数据并可能使设备变砖,使其无法使用。此外,确保所有实验的条件相同可能具有挑战性,并且每次数据收集后清洁设备非常耗时(Lin 等人,2013)。
无论每项研究选择数据收集平台背后的基本原理如何,所有研究的主要假设都已明确说明(Burguera 等人,2011;Lin 等人,2013;Vidal 等人,2017) ),即应用程序的行为在 Android 设备和操作系统版本之间是一致的。这意味着使用设备和操作系统版本的特定组合获得的结果可推广到所有其他类型的设备和操作系统版本。这一事实解释了用于研究目的的无数数据收集平台和操作系统版本以及缺乏同质化和设备选择标准的原因。无论执行平台如何,都假定行为完全一致。虽然对于静态数据来说确实如此,但对于动态数据却不能暗示同样的情况,正如在实验设置中使用这两种设备的一小部分工作的结果所证明的那样(参见表 2 中的最后几行)。更准确地说,所有使用多种设备(即模拟器和真实设备)的研究都发现,跨设备的同一组 Android 应用程序的记录行为存在显着的不一致,包括系统调用(Guerra-Manzanares 和 Välbe) ,2022;Guerra-Manzanares 等人,2019a,b) 和 API 调用(Alzaylaee 等人,2017)。这些不一致导致跨设备检测性能下降(GuerraManzanares 和 Välbe,2022)。因此,这些工作的结果挑战了跨设备假设的一致行为的有效性,这可能对生产检测系统产生重大影响。
尽管研究数量的减少可能不会被认为是证伪基于动态特征的研究的共同假设的决定性证据,但它提供了足够的基础来促进对该主题的进一步研究,以评估这一事实可能产生的重大影响。有效的生产检测系统的设计和实施。不一致的跨设备行为阻碍了知识跨设备的可转移性,阻碍了结合模拟器和真实设备数据的混合解决方案的生成。此外,如果行为在同一类型的设备上(例如,在真实设备或模拟器上)也不一致,如 Guerra-Manzanares 和 Välbe (2022) 中所建议的,它会阻止实现集体隐私的设备上数据收集 -保留知识共享架构,例如基于联合学习的解决方案。使用动态数据属性的生产系统的设计和实现必须在数据选择和聚合管道中考虑这一重要因素,以便为最终用户提供有效的检测性能。将研究中提出的检测解决方案成功应用于生产系统直接取决于通过对该主题的进一步研究来评估这些关键因素。
5 挑战三:概念漂移
大多数基于机器学习的模型都是静态的,因此假设输入数据分布是固定的,并且随着时间的推移是一致的。更具体地说,假设用于构建模型的训练数据和用于评估模型的测试数据非常相似(即来自相同的数据分布)。虽然这可能适用于某些应用领域,但大多数机器学习问题都面临非平稳数据分布,其中目标变量的统计属性或定义特征随时间以不可预测的方式变化(Lu et al., 2018),这种现象称为概念漂移。形式上,给定在有限时间段 [t0, t1] 内定义的一组示例 St0,t1 ={st0 , ..., st1 },其中 si =(xi, yi) 是单个示例,xi =(xi1 , xi2, ... , xin) ∈ X 是特征向量,yi ∈ Y 指目标标签,St0,t1 遵循特定的数据分布 Ft0,t1 (X, Y) (Guerra-Manzanares 和 Bahsi, 2022b ),若 Ft0,t1 (X, Y) ≠ Ft2,∞(X, Y),则在 t2 时发生概念漂移现象,记作 ∃t ∶ Pt(X, Y) ≠ Pt+1(X, Y) )(Lu et al.,2018)。基于这个定义,在时间段ti的概念漂移与X和Y在时间ti的联合概率的变化(即Pti(X,Y))有关。假设 Pti (X, Y) = Pti (X) × Pti (Y ∣ X),概念漂移可以源自三个来源(Lu et al., 2018): (1) Pt(X) ≠ Pt+1( X) 和 Pt(Y ∣ X) = Pt+1(Y ∣ X) (即称为虚拟漂移,其中数据分布的变化不影响模型的决策边界,不需要采取自适应措施); (2) Pt(X) = Pt+1(X) 且 Pt(Y ∣ X) ≠ Pt+1(Y ∣ X) (即称为真实概念漂移,需要根据后验的变化采取自适应措施)概率影响模型的决策边界并导致模型性能下降),并且 (3) Pt(X) ≠ Pt+1(X) 且 Pt(Y ∣ X) ≠ Pt+1(Y ∣ X) (即,真实概念漂移的另一种情况,由于特征数据分布和决策边界的变化,需要采取自适应措施。
根据之前的定义,只有真正的概念漂移会影响模型的决策边界,从而导致模型的泛化能力下降,从而导致模型随着时间的推移而过时。因此,从预测建模的角度来看,只有影响模型决策边界的变化(与模型的预测直接相关)才需要采取自适应措施(即模型更新)(Gama et al., 2014)。
一般来说,网络安全领域,特别是 Android 恶意软件检测,其特点是威胁形势的不断演变(例如,恶意软件的演变或新家族的出现)。因此,如果不采取自适应措施,Android恶意软件检测的静态模型很容易出现概念漂移问题,随着时间的推移,会导致性能下降和模型过时(即,在这种情况下,静态模型是指不随时间更新的模型) 。尽管如此,专业文献中提出的绝大多数 Android 恶意软件检测解决方案都是静态的,忽略了概念漂移,并且没有提出或考虑任何自适应措施(例如模型更新机制或再训练计划)。因此,这些模型只是针对 Android 历史数据特定快照的基于 ML 的优化,在短期内(即最坏情况)将无法有效处理训练数据集中未表示的新数据和演进数据)或长期(即最好的情况)。此外,随机分割数据集的通常做法(机器学习工作流程和 Android 恶意软件检测研究中的典型做法)忽略了概念漂移和数据样本之间的时间顺序的存在。结果,训练集和测试集之间的历史一致性被破坏(Allix et al., 2015;Pendlebury et al., 2019),产生由数据窥探导致的有偏见、过度夸大和历史不连贯的结果(Arp et al., 2019)。 ,2022)。这是大多数 Android 恶意软件检测研究中存在的主要验证缺陷。
表 3 总结了 Android 恶意软件检测文献中在设计和验证中考虑概念漂移的一小部分研究。从表 3 中可以看出,只有少数涉及 Android 恶意软件检测的研究工作在其设计和验证中考虑了概念漂移。这些工作提出了基于机器学习的检测系统,可以适应数据随时间的变化(即数据演化),从而减少或避免概念随时间漂移而导致的性能下降。相关文献中已经提出了数据漂移检测技术(Barbero et al., 2020; Jordaney et al., 2017; Pendlebury et al., 2019),可以作为新兴概念漂移的指标。如表 3 所示,大多数提出的检测系统都侧重于 API 调用作为输入特征(Cai,2020;Cai 等人,2019;Lei 等人,2019;Narayanan 等人,2016;Onwuzurike 等人, 2019;Xu 等人,2019;Zhang 等人,2020b),可以静态和动态收集的特征集。与第 3.2 节类似,这些解决方案尚未利用混合功能集提供的卓越区分能力和针对混淆和加密技术的鲁棒性。大多数方法提出了基于静态特征的解决方案,这些解决方案很容易被对抗性样本和攻击所欺骗和误导(参见第 6 节)。尽管大多数作品的 F1 分数超过 90%,但不同研究的研究时间框架差异很大,使用短时间框架的研究假设概念漂移,但没有证明其存在。在这方面,只有 Guerra-Manzanares 等人。 (2022b)证明了数据集所包含的时间范围内存在概念漂移,以证明采用拟议方法的合理性。
从表 3 中可以看出,大多数研究结合了数据集和恶意软件存储库来覆盖指定的时间范围。这强调了概念漂移分析现有数据集的局限性。唯一的例外是 KronoDroid,这是一个旨在研究概念漂移和跨设备检测问题的数据集(Guerra-Manzanares 等人,2021)。 AndroZoo 是一个巨大的 apk 存储库,被大量作品用来补充恶意软件和合法 Android 应用程序的现有数据集。
概念漂移处理和分析的核心概念是时间戳。时间戳可以沿着历史时间线对应用程序进行排序,这对于历史一致性至关重要。由于恶意软件生成的特征,通常不可能沿着时间轴确定地定位实例。为此,使用时间近似(即时间戳方法)。在这方面,不同的时间戳方法提供了沿历史时间线的不同数据样本排序(Guerra-Manzanares 和 Bahsi,2022b)。从表 3 中可以看出,研究中最常用的时间戳是首次出现和编译日期。这些时间戳是从 VirusTotal 报告中检索的,并用于按时间顺序对整个数据集进行排序。
编译日期是报告应用程序(即 apk 存档)的创建或编译日期的内部时间戳。尽管被过去的作品称为可靠的时间戳(Pendlebury et al., 2019)并用于相关研究(Barbero et al., 2020; Cai, 2020; Pendlebury et al., 2019; Xu et al., 2019) ,现在这是一种不可用的方法,因为最近的应用程序提供了无效值(即 1980)(Guerra-Manzanares 和 Bahsi,2022b;U. du Luxembourg,2021)。另一方面,首次看到的时间戳是外部时间戳,在相关研究中也称为出现或提交时间,它报告应用程序首次提交到 VirusTotal 的日期。外部时间戳可以被认为更可靠,因为它们超出了攻击者的范围(即它们由可靠的第三方提供)。然而,正如 Guerra-Manzanares 和 Bahsi (2022b) 中所证明的那样,它们很容易出现严重延迟,其中首次看到的时间戳和最后修改的时间戳进行了彻底的比较。更具体地说,在 Guerra-Manzanares 和 Bahsi (2022b) 中,作者对 Android 恶意软件检测中概念漂移处理的时间戳进行了彻底的分析和基准测试,结果表明,第一次看到的时间戳总是延迟到最后修改时间戳,而后者提供了更好的性能处理旧数据的概念漂移。然而,对于最近的样本,延迟似乎微不足道,并且两个时间戳几乎相同。这意味着这两种方法都可以有效地用于处理生产系统中的概念漂移。
尽管时间戳对于概念漂移处理很重要,但除了 KronoDroid 之外,没有任何可用数据集包含它们,如表 1 所示。这与专门研究显示的概念漂移的忽视是一致的。 KronoDroid 每个样本包含六个时间戳(即两个内部时间戳和四个外部时间戳),可用作概念漂移处理解决方案的基准,如 GuerraManzanares 等人中所述。 (2022a,b)。尽管存在局限性,但该数据集旨在成为该主题进一步研究的种子以及改进数据集的灵感(Guerra-Manzanares 等人,2021)。
文献中尚未探讨的与概念漂移相关的问题是为了多类分类目的以自动方式检测新的恶意软件家族(即恶意软件家族检测模型)。虽然漂移信号技术可用于决定何时重新训练二元分类模型,但更有趣的研究是自动检测新的恶意软件家族(即与历史家族数据显着偏离的恶意软件威胁)并将其集成到多个恶意软件家族中。类分类模型。相关文献尚未对此方面进行探讨,在多类检测解决方案方面也特别缺乏(Alswaina 和 Elleithy,2020)。
大多数有关 Android 恶意软件检测的研究工作都忽略了概念漂移及其对模型性能随时间的影响。由于威胁形势的不断演变,任何旨在有效长期检测的解决方案都应在其设计和实施中考虑概念漂移适应。专业文献中考虑概念漂移的少数研究集中于特定时间戳,这是概念漂移处理背后的一个关键方面。这些工作为促进该主题的研究提供了种子,这有助于显着增强生产系统。更具体地说,需要对处理 Android 恶意软件研究中概念漂移的有效方法、促进这种探索的数据集、以及处理概念漂移的生产检测系统的可行时间戳替代方案和更新时间表的提议进行更多研究。
6 挑战四:模型安全——对抗性机器学习
如本文前面部分所示,如果概念漂移得到解决,基于机器学习的 Android 恶意软件检测解决方案可以在短期或长期提供较高的检测性能。这假设检测系统在良性环境中进行训练和部署,其中,无论是否出现自然概念漂移,数据样本都是真实的。然而,这并不总是能得到保证。在某些对抗性场景中,有动机的攻击者可能会故意合成输入数据,从而在训练有素的分类模型的预测中引发错误。这些对机器学习分类器的有动机的攻击促进了对机器学习安全性和鲁棒性的大量研究工作(Biggio 和 Roli,2018;Huang 等人,2011)。
专业研究社区也对基于机器学习的 Android 恶意软件检测模型的安全性进行了探索,并就此主题发表了大量论文。尽管一些一般性调查包括对抗性 Android 恶意软件研究(Li 等人,2021a),但我们根据 Biggio 和 Roli(2018 年)中描述的针对机器学习的攻击的简化威胁模型分类法,对对抗性 Android 恶意软件检测研究进行了全面分类)。研究的分类如表 4 所示,并解释如下。
Biggio 和 Roli (2018) 中描述的简化威胁模型可以使用 2x3 矩阵来描述,其中第一个维度描述攻击者访问特定数据(即测试和训练数据)的能力,而第二个维度描述攻击者的妥协目标:完整性、可用性或隐私/机密性。对机器学习模型完整性的攻击不会损害系统的正常运行,而可用性攻击则会损害系统的正常运行。隐私/机密攻击基于旨在泄露模型或其用户的机密信息的查询策略(Biggio 和 Roli,2018)。对测试数据的完整性攻击被称为逃避攻击或对抗性示例,因为攻击者的主要目标是制作样本以避免检测(即,在恶意软件的情况下)。针对训练数据的完整性攻击称为中毒完整性攻击,其目的是为后续的入侵引入后门或木马样本。对训练数据的可用性攻击,也称为中毒或中毒可用性攻击,旨在最大化模型的泛化误差(即最大化测试数据上的分类误差,使检测模型无效)。最后,隐私/机密攻击是使用精心设计的测试数据样本来获取机密信息,可以分为模型提取/窃取或模型反转,具体取决于目标是窃取模型还是提取有关其用户的敏感信息。 (比吉奥和罗利,2018)。由于Android恶意软件检测问题的特殊性,研究重点调查对分类器安全性的两种攻击:测试阶段的完整性攻击(即旨在绕过对受干扰或精心设计的恶意软件实例的积极检测的逃避攻击),和可用性攻击,其目的是毒害训练数据并导致拒绝服务(Chen 等人,2018)。逃避攻击可以进一步分类为特征空间攻击(也称为理论攻击)或问题空间攻击(也称为物理攻击),具体取决于对输入数据执行的转换的性质以欺骗分类器(Pierazzi 等人) .,2020)。在特征空间攻击中,对手会扰乱从样本中提取的特征向量来欺骗分类器,而问题空间攻击则为此目的精心设计了一个新的、真实的、功能齐全的规避样本(Zhao et al., 2021a)。因此,表 4 根据所调查的攻击对文献中的研究进行了分类:逃避、中毒或两者兼而有之。对于逃避攻击,我们还区分特征空间攻击(粗体)、问题空间攻击(下划线字体)以及两者(粗体和下划线字体)。
从表 4 中可以看出,Android 恶意软件检测领域的绝大多数对抗性研究都调查规避技术和对抗性样本生成。在这方面,一些研究提出了恶意软件检测方法,并展示了它们对对抗样本的鲁棒性(Chen et al., 2017a; Li et al., 2021c,d; Xu et al., 2018; Yumlembam et al., 2022),而其他研究则提出了利用生成对抗网络 (GAN) 和强化学习 (RL) 等 ML 方法生成对抗样本的技术(Chen 等人,2019b;Darwaish 等人,2021;Li 和 Li,2020;Li 等人,2019a) ;Liu 等人,2019;Renjith 等人,2022b;Shahpasand 等人,2017;Zhang 等人,2021a)。特征空间攻击仍停留在理论层面,更容易实现,是相关文献中最常见的规避攻击,而问题空间攻击则需要更高的技术技能来制作新样本(即反汇编、修改)以及重新包装新功能应用程序)的探索明显较少。
此外,表4中几乎所有研究都以某种方式使用静态特征集和Drebin数据集。更具体地说,虽然有些使用完整的 Drebin 数据集(Bala 等人,2021;Chen 等人,2019b;Li 和 Li,2020;Li 等人,2021b;Rathore 等人,2022;Yang 等人,2022)。 ,2017;Zhang 等人,2020a),其他人使用这个流行数据集的特征/数据子集(Chen 等人,2017a,2018;Li 等人,2019a;Rathore 等人,2021a,b;Renjith等人,2022b;Shahpasand 等人,2019;Taheri 等人,2020b),或使用样本但不使用特征(Ananya 等人,2020),其他人使用 Drebin 分类器,使用数据集诱导(阿贝德等人,2017;陈等人,2016)。尽管之前的作品(Irolla 和 Dey,2018)发现了样本冗余问题以及其中包含过时的恶意软件数据,但这证实了最近作品的数据集的受欢迎程度。此外,大多数研究都使用在研究时收集的良性样本,这在恶意软件和良性样本之间造成了巨大差距,可能会产生不切实际的结果。需要进一步的研究来验证最新恶意软件数据的结果,包括更完整的数据集和最新的攻击向量。表 4 中的数据也证实了第 3.2 节中的观察,这表明研究高度集中在基于静态特征的模型上,而忽视了动态和混合特征集的使用,而动态和混合特征集已被证明也更稳健与使用静态特征构建的分类器相比,在对抗性环境中具有弹性(Anupama et al., 2022)。
人们提出了几种针对对抗性攻击的防御策略(Chen et al., 2017b; Li et al., 2021b; Taheri et al., 2020b),包括对抗性训练(Bai et al., 2021; Wang et al., 2021) 。由于其重要性,需要对基于机器学习的 Android 检测模型的安全性进行进一步研究,特别是使用动态和混合功能集,这些功能集本身可以充当防御策略,但不能免受攻击(Anupama et al., 2022) )。
最后,对规避的关注忽视了训练数据中毒的重要性,正如 Taheri 等人所证明的那样,这在联邦学习环境中是相关且可行的。 (2020d),对手可以通过冒充普通节点轻松篡改训练数据并污染全局模型。同样,对抗性研究忽视了威胁格局的非平稳性,这些研究重点关注平稳数据的假设。因此,相关文献尚未探讨对抗性概念漂移。在这种情况下,对手注入虚假概念漂移,以误导检测系统采取不必要的自适应措施,其最终目标是降低分类系统的性能。对抗性概念漂移给检测模型增加了一层额外的复杂性,因为它需要区分自然概念漂移和对抗性概念漂移,而又不妨碍自然数据演化的适应过程(Korycki 和 Krawczyk,2022)。需要进一步研究来探索这些关键方面,以增强模型针对生产检测系统中真实对手的稳健性。
Android 恶意软件检测领域的对抗性研究主要集中在整个问题空间的特定子集(即利用静态功能集引发的对静态模型的规避攻击)。因此,大多数问题空间仍未被探索或已被肤浅地研究过。在这方面,提高生产检测系统针对真实对手的鲁棒性的相关未来研究方向包括利用和分析针对使用动态和混合特征集诱导的模型的对抗性攻击、联合上下文中的中毒攻击和对抗性概念漂移。
7 挑战五:可解释的人工智能——理解模型及其预测
可解释的人工智能(XAI)旨在揭示机器学习模型预测背后的决策过程,这些模型大多被视为黑盒模型(即特别是基于深度学习的系统)。除了满足某些司法管辖区模型决策透明度的法律要求(Goodman 和 Flaxman,2017)之外,应用解释方法来理解检测模型及其预测不仅可以提供有关模型行为的相关信息,还可以提供有关数据集行为的相关信息本身(即 Android 恶意软件检测中的威胁态势)。例如,Guerra-Manzanares 等人。 (2022b) 利用特征重要性演化来理解系统调用数据上的概念漂移问题,Guerra-Manzanares 等人对此进行了扩展。 (2022c)用于基于设备的分析,Guerra-Manzanares 等人。 (2022a) 提供了针对安全权限和特定恶意软件系列的类似分析。
Android恶意软件检测解决方案的研究工作集中在性能指标的优化上,这与人工智能应用到网络安全问题的主要目标是一致的,生成了从其他人工智能应用领域采用的日益复杂的架构来处理Android恶意软件检测问题(例如计算机视觉模型(Yadav 等人,2022)或图形转换器(Fan 等人,2021))。深度学习架构在研究工作中的广泛使用,通常被视为人工智能应用黑盒模型的范例,已经将焦点从决策树和线性回归等更可解释的方法转移(Molnar,2022)。这种转变提高了人们对模型可解释性的兴趣,促进了与模型无关的解释方法(例如特征重要性(Breiman,2001)和沙普利值(Shapley,1953))的采用以及特定于神经网络的技术(例如像素图像分类器的归因(Simonyan 等人,2013))。更有趣的是,已经开发了全局和局部解释方法来分别解释模型的平均行为和个体预测,Molnar (2022)。然而,尽管最近在该领域进行了研究工作并且可用的解决方案多种多样,但解释方法在 Android 恶意软件检测领域的应用很少,大多仅限于特征重要性分析(例如,Guerra-Manzanares 等人,2019a,b) ,C)。
尽管该领域的一些研究强调了预测的可解释性对于审查模型输出以改进检测机制的重要性(Kinkead 等人,2021 年;Scalas 等人,2019 年),但 XAI 技术在网络安全和网络安全领域的范围和应用尤其是 Android 恶意软件检测仍然有限(Wu et al., 2021)。在这方面,Scala 等人。 (2019) 使用可解释性方法来查找 Android 应用程序使用的最有歧视性的 API 调用,而 Kinkead 等人。 (2021) 使用 LIME 查找总体分类和特定恶意软件家族的最重要的全局特征。卡恩等人。 (2021) 比较了用于基于云的恶意软件检测的不同 XAI 技术,而 Iadarola 等人。 (2021) 提出了一种用于 Android 恶意软件检测和家族识别的可解释深度学习模型。 Guerra-Manzanares 等人使用了排列特征重要性。 (2022c) 和 Guerra-Manzanares 等人。 (2022b)随着时间的推移分析重要的系统调用以区分 Android 恶意软件,而 Guerra-Manzanares 等人。 (2022a) 使用类似的方法进行权限和恶意软件家族的演变。吴等人。 (2021)提出了一种可解释的深度学习分类器,可以区分恶意软件和良性样本,提供模型决策背后的相关特征和基本原理。梅利斯等人。 (2018) 引入了一种方法,将本地可解释的 Android 恶意软件检测器(例如 Drebin)的可解释决策推广到任何非线性机器学习算法(即黑盒模型),并解释影响模型输出的全局特征。梅利斯等人。 (2022) 探索了基于梯度的解释在评估 Android 恶意软件检测系统的稳健性方面的有用性。吴等人。 (2022) 利用热图来分析和了解恶意软件家族分类中最具歧视性的敏感 API 调用,而 Morcos 等人。 (2022) 使用沙普利加性解释 (SHAP)(即基于沙普利值)进行全局模型理解和局部解释。
所有这些研究都证明 ML 模型可用于准确检测恶意软件并获得有关 Android 恶意软件数据的相关见解,这些数据可用于扩展和丰富领域知识并增强当前的检测系统,如 Scala 等人所证明的那样。 (2019),或解释历史演变(Guerra-Manzanares 等人,2022a)。此外,模型解释可以帮助用户(例如 SOC 环境中的专家分析师)建立对预测模型的信任,并帮助他们决定和评估不同的模型(Iadarola 等人,2021)。
尽管解释方法不能摆脱限制和假设(Arrieta et al., 2020; Molnar, 2022),因此必须仔细对比和分析它们的输出(Keane et al., 2021),但当应用于高性能模型时,它们不仅可以满足法律要求和准确预测,还可以理解模型预测并提取相关数据见解(Wu et al., 2021),从而为模型用户建立直觉和信任。尽管 XAI 在模型和预测理解方面的应用在最近的应用中有所增加,但随着深度学习模型的增加,大多数解决方案仍然只关注性能,这限制了可以从研究工作中检索的知识。此外,在人工智能采用和监管的全球框架中(Goodman和Flaxman,2017),模型和决策透明度可能构成生产系统中某些检测模型的采用和实施背后的决定性标准。因此,将 XAI 技术添加到模型管道中对于扩展领域知识大有裨益,同时准确预测并促进未来基于 ML 的解决方案的采用。
8 对今后工作的建议
本节简要总结了基于机器学习的 Android 恶意软件检测领域中研究较少和未探索的主题,以及对未来工作的一般建议。请注意,以下列表并不详尽,我们鼓励重新审视每个挑战部分,以获得更好的背景和具体细节(第 3-7 节)。
• 挑战一:缺乏更新且有代表性的数据集。对此,不仅要关注数据数量,更重要的是数据质量。研究和数据集应解决与数据相关的问题,例如包含旧的和最近的威胁/样本、代表性、包含混合功能、数据不平衡和恶意软件/系列标签。 • 挑战二:尽管具有相关性,但相关工作很少考虑跨设备行为一致性。在使用动态特征并以泛化为目标的研究中应该考虑这个问题,重点关注如何在生产系统中解决这个问题。
• 挑战三:概念漂移尚未得到广泛研究。然而,数据和威胁演变是现实生活中实施所面临的实际挑战。旨在超越实验室测试的真正适用性的恶意软件检测解决方案应在数据演变约束下评估其方法,并纳入更新机制以通过设计处理概念漂移。
• 挑战四:Android 恶意软件检测领域的机器学习安全工作主要集中在特征空间规避攻击上,这些攻击主要在理论层面上进行演示(即输入向量操作)。未来的工作应该旨在将领域知识扩展到更现实和实用的方法,例如问题空间攻击、数据集中毒和对抗性概念漂移。
• 挑战五:在少数相关工作中考虑了可解释性。然而,XAI 不仅是监管合规性的关键,也是了解威胁演变的关键,能够提供有价值的见解来改进检测。在这方面,鼓励研究不要仅仅将模型视为检测黑匣子,而应将模型和威胁理解作为扩展领域知识和增强威胁检测的有效手段。
9 结论
大量涉及 Android 恶意软件检测的研究工作通常使用各种 ML 算法报告高性能指标,可用于将问题标记为已解决并阻碍进一步的研究。本研究旨在评估这一说法的有效性,并阐明 Android 恶意软件检测是否实际上可以被视为已解决的问题 (RQ1)。我们的结论很明确:Android 恶意软件检测还不能被视为已解决的问题。在仔细研究文献后,我们确定了五个未解决的挑战来支持我们的答案。从方法缺陷到无效假设和数据集限制,这些未解决的问题阻碍了有效的长期 Android 恶意软件检测之路,为该主题的进一步研究奠定了基础。整篇论文详细列举并描述了悬而未决的挑战,激发了该问题领域未来的研究方向。对现有技术进行全面回顾的目的是在仔细修订相关文献的基础上阐明尚未探索的研究方向,激发该领域的研究工作,使问题更接近于实际上被视为已解决的问题。